package com.cloudkinto.service.tailtrucks;

import com.cloudkinto.entity.TailTrucksDo;
import com.baomidou.mybatisplus.extension.service.IService;

import com.cloudkinto.common.web.PageResult;
import com.cloudkinto.common.web.SingleResult;
import com.cloudkinto.service.fbaorderoutput.vo.FbaOrderOutputUploadFileReq;
import com.cloudkinto.service.tailtrucks.vo.*;

import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  service接口
 * </p>
 * @author zhangyy
 * @since 2020-10-28
 */
public interface TailTrucksService extends IService<TailTrucksDo> {

    SingleResult addInit();

    void add(TailTrucksAddReq req, Long userId);

    void amazonTime(TailTrucksConTimeReq req, Long userId);

    Date getAmazonTimeByMail(String subject);

    String getAppointmentCodeByMail(String subject);

    void trucksAppointment(TailTrucksAppointmentReq req, Long userId);

    void autoTrucksAppointment(List<Long> ids);

    SingleResult updateStatusInit();

    void updateStatus(TailTrucksUpdateStatusReq req, Long userId);

    void uploadSignatureFile(FbaOrderOutputUploadFileReq req);

    void jointTrucks(TailTrucksJointTrucksReq req, boolean flag);

    void jointFbaTrucks(TailTrucksJointFbaReq req,Long userId);

    SingleResult fbaOrderSingleJointInit(Long id);

    SingleResult fbaOrderSingleJoint(FbaOrderSingleJointReq req ,Long userId);

    SingleResult updateInit(Long id);

    Object update(Object updateVo, Long userId);

    int delete(Long id, Long userId);

    void updatePoNumberHandler(Long id);

    int deleteOrder(TailTrucksDeleteReq req);

    List<TailTrucksDetailListRes> detail(Long id);

    SingleResult pageInit(Long cId,Long uId);

    List<TailTrucksPageRes> getList(Map<String   , String> map);

    PageResult getListPage(Map<String, String> map);

    void exportAmazonReceivePage(Long id, HttpServletResponse response);

    void exportPickupPage(Long id, HttpServletResponse response);

    void updateAmazonTime(UpdateAmazonTimeReq req);
}
